package Lambda;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.nio.channels.FileLock;

/**
 * JDK8之后支持lambda表达式这个特性
 * lambda表达式可以用更精简的语法创建匿名内部类，但是实现的接口只能有一个
 * 抽象方法，3geqrhgeqrgv否则无法使用
 * （参数列表）->{
 *     方法体
 * }
 */
public class LambdaDemo {
    public static void main(String[] args) {
        //正常匿名内部类创建
//        FileFilter file=new FileFilter() {
//            @Override
//            public boolean accept(File pathname) {
//                return file.getName().startsWith(".");
//            }
//        } ;
        FileFilter file1=(File file)->{
            return file.getName().startsWith(".");
        };//能这样写代表这个接口就只有一个抽象方法，java可以自动识别
        FileFilter file2=(f)->{
            return  f.getName().startsWith(".");
        };
        //能这样写代表这个接口就只有一个抽象方法，java可以自动识别传入的参数
        FileFilter file3=(f)-> f.getName().startsWith(".");
        //lambda表达方法体重若只有一句代码，则{}可以省略
        //如果这句话有return关键字，那么return也要一并省略。
       //能这样写代表这个接口就只有一个抽象方法，java可以自动识别传入的参数和返回的参数。
        FileFilter file4= f ->  f.getName().startsWith(".");
    }
}
